There have hitherto been known methods of drawing three-dimensional graphics by rendering three-dimensional objects constituted of a plurality of polygons disposed in a virtual three-dimensional space. Such three-dimensional graphics are increasingly being used in the field of games. In a game, objects, including characters that can be operated by using a controller, buildings, etc., are disposed in a virtual three-dimensional space, and rendered images of these objects are generated on the basis of a set viewpoint (viewpoint camera). The images are displayed on a display device, such as a display.
Three-dimensional image display is realized, for example, by a GPU in which programmable shaders are implemented. As a method of displaying three-dimensional images by using a GPU, a CPU writes a command relating to rendering to a memory, and the GPU refers to the command and renders objects via the programmable shaders implemented in the GPU. For example, the shaders include a vertex shader that executes processing on vertices, a geometry shader that executes processing to increase or decrease the number of vertices constituting primitives, a pixel shader that executes processing on a per-pixel basis, etc.
The quality of rendering objects that are displayed in a 3D game in which such three-dimensional image display is executed is significantly affected by the number of shader units used to render the objects. That is, objects rendered by using a greater number of shader units have high quality as viewed from a player, whereas objects rendered by using a fewer number of shader units have relatively low quality.
Therefore, in order to realize image quality that appeals to players, it is desired to allocate a greater number of shader units to objects that receive attention in the game. With the recent spread of programmable shaders and GPGPUs, it has become possible to dynamically allocate shader unit resources in real-time rendering of 3D images. For example, in a well-known resource allocation method, a majority of shader units are used as pixel shaders for calculating colors in a sunset scene, whereas a great majority of shader units are used as vertex shaders in a scene in which a large number of polygons are displayed.
Since mobile devices such as smartphones have limitations in the capacities of power supply batteries, implementation areas, etc., GPUs of those devices include only limited numbers of shader units compared with PCs and game machines. Thus, appropriate resource allocation of shader units has a higher importance with mobile devices.
For example, Patent Literature 1, from the same viewpoint, arrived at a technology for alleviating the processing load on a terminal by changing the image resolution of objects that are displayed in accordance with the position of a player's viewpoint.